iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

在本系列文會利用目前 Visual Studio 內建的專案樣本建立一個初始的 .NET MAUI 專案,並且透過此 .NET MAUI 專案來把 TopStore App 的開發從 Xamairn.Forms 轉換到 .NET MAUI 上進行。

本篇是 Re: 從零改成用 .NET MAUI 技術來繼續過去用 Xamarin 開發的一個 App : TopStore 系列 系列文的 EP25。


在上一回當中在 GoodsPageViewModel 中來設計完 GoodsPage 當中所需要的 Command 操作,接著就回到 GoodsPage 來進行 XAML 的 Binding 編輯,以利 UI 在控制操作上都能對應到正確的 Command

在本回當中先針對 CollectionView 所需操控的部分來進行調整。

首先打開 "Pages" 資料夾底下的 "GoodsPage.xaml" 檔案:
01-1

接著稍微調整一下 CollectionView 標記當中的 ItemSource 屬性排版位置(非必要,只是為了本文後面截圖方便):
01-2

接著加入 SelectionChangedCommandSelectionChangedCommandParameter 的繫結處理,以及 SelectionMode 的設定:

    SelectionChangedCommand="{Binding EditCommand}"
    SelectionChangedCommandParameter="{Binding Source={RelativeSource Self}, Path=SelectedItem}"
    SelectionMode="Single"

完成結果如下圖紅框所示:
02

接著把焦點移置 SwipeView 當中所設置的 SwipeItem,順便調整一下屬性排版(非必要,只是為了本文後面截圖方便):
03-1

接著加入 CommandCommandParameter 的繫結處理:

Command="{Binding Source={RelativeSource AncestorType={x:Type viewmodels:GoodsPageViewModel}}, Path=DeleteCommand}"
CommandParameter="{Binding Source={RelativeSource Self}, Path=BindingContext}"                         

完成結果如下圖紅框所示:
03-2

然後再找到設計在這個 SwipeView 當中,包覆在 Grid 版型元件內部,所設置的一個 UI 元件 Button
04-1

因為想善用 CollectionView 這個新 UI 元件,所以在這邊把 Button 給刪除(如下圖藍色框圈起的註解):
04-2

接著再找到 Grid 版型元件內部設定 Grid.ColumnDefinition 的 XAML 標記也刪除(如下圖藍色框所示的註解),並且加上 SwipeView.RightItems 的 XAML 標記(如下圖紅框所示):

<SwipeView.RightItems>
    <SwipeItems>
        <SwipeItem
            BackgroundColor="Cyan" Text="下訂單" />
    </SwipeItems>
</SwipeView.RightItems>

04-3

接著加入 CommandCommandParameter 的繫結處理:

Command="{Binding Source={RelativeSource AncestorType={x:Type viewmodels:GoodsPageViewModel}}, Path=MakeOrderCommand}"
CommandParameter="{Binding Source={RelativeSource Self}, Path=BindingContext}"

完成結果如下圖紅框所示:
04-4

完成的結果如下:

點選 GoodsPage 當中的一項 Product,正確執行所設計的 Command
05-1

對 GoodsPage 當中的一項 Product 向右滑動,出現在左邊的 "刪除" 項目,點選後正確執行所設計的 Command,再繼續點選 "確定" 後 GoodsPage 的 Product 列表就刪除該 Product:
05-2

對 GoodsPage 當中的一項 Product 向左滑動,出現在右邊的 "下訂單" 項目,點選後正確執行所設計的 Command
05-3

本 EP 介紹所完成的範例程式碼可在此下載


PS 如果對本篇所撰寫的 "Binding" 手法有疑惑的地方,可以到 "2021 鐵人賽的文章 - EP 15: The Button of item in ListView binds Command to ViewModel" 查看了解唷!


上一篇
EP 24: Design the Commands of GoodsPageViewModel in TopStoreApp
下一篇
EP 26: Implement Add Product and Search for GoodsPage in TopStoreApp
系列文
Re: 從零改用 .NET MAUI 技術來繼續過去用 Xamarin 技術開發的一個 App : TopStore30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言